﻿using System;
using System.Collections.Generic;
using System.Data;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
using CommonCs;
using LogicServer;
using Model;

namespace BugSysSolution.TestTree
{
    public partial class WebForm1 : System.Web.UI.Page
    {
        protected void Page_Load(object sender, EventArgs e)
        {
            if (!IsPostBack)
            {
                Bind_Tv(getdt(), tree_view.Nodes, "0", "Id", "ParentId", "NodeVal");
            }
        }

        public DataTable getdt()
        {
            TestTreeView t = new TestTreeView();
            return t.getdt();
        }

        private void Bind_Tv(DataTable dt, TreeNodeCollection tnc, string pid_val, string id, string pid, string text)
        {
            string filter = string.Format("{0}={1}", pid, pid_val);
            DataRow[] rows = dt.Select(filter);
            
            TreeNode tn;                                            //建立TreeView的节点（TreeNode），以便将取出的数据添加到节点中

            foreach (DataRow drv in rows)
            {
                tn = new TreeNode();                                //建立一个新节点（学名叫：一个实例）
                tn.Value = drv[id].ToString();                      //节点的Value值，一般为数据库的id值
                tn.Text = drv[text].ToString();                     //节点的Text，节点的文本显示
                tn.ImageUrl = "img.png";
                tn.NavigateUrl = "NodeInformation.aspx?id=" + drv[id].ToString();
                tnc.Add(tn);                                        //将该节点加入到TreeNodeCollection（节点集合）中
                Bind_Tv(dt, tn.ChildNodes, tn.Value, id, pid, text);//递归（反复调用这个方法，直到把数据取完为止）
            }
        }
    }
}